<HTML><HEAD><TITLE>par_indomain(?Var)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(fd)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>par_indomain(?Var)</H1>
Instantiate Var to a number of values in its domain in parallel.


<DL>
<DT><EM>?Var</EM></DT>
<DD>An integer or a domain variable
</DD>
</DL>
<H2>Description</H2>
   This predicate instantiates the domain variable Var to a value from its
   domain.  The instantiation is executed in Or-parallel, i.e.  several
   parallel jobs are created which may be executed in parallel on different
   processors.  There is no specified order of enumerating the domain of
   the variable, the user should not rely on a particular order.  It is
   used mostly to find an instantiation of the variable which is consistent
   with the current set of constraints in labeling procedures of a parallel
   program.  If List is a list of all domain variables occurring in the
   program, the simplest parallel labeling procedure is written as

<P>
<PRE>
        labeling([]).
        labeling([Var|Rest]) :-
            par_indomain(Var),
            labeling(Rest).
</PRE>

<H3>Fail Conditions</H3>
   None.


<H3>Resatisfiable</H3>
   Yes.
<H2>See Also</H2>
<A HREF="../../lib/fd/NN-2.html">:: / 2</A>, <A HREF="../../lib/fd/HNN-2.html">#:: / 2</A>, <A HREF="../../lib/fd/indomain-1.html">indomain / 1</A>
</BODY></HTML>
